Reference is now made to FIG. 1 showing a prior art control circuit 10 for a brushless DC (BLDC) sensorless motor 12.
The motor 12 includes three motor windings represented by inductances La, Lb and Lc. Each motor winding is coupled between a center terminal CT of the motor 12 and one of the external drive terminals A, B, C of the motor. For example, the winding La is coupled between CT and terminal A, the winding Lb is coupled between CT and terminal B. and the winding Lc is coupled between CT and terminal C. The motor 12 may further support a fourth external terminal that is connected to the center terminal CT.
The control circuit 10 includes a driver circuit 14 that operates to generate drive signals (Out A, Out B and Out C) for application to the external drive terminals A, B, C of the motor. The driver circuit 14 operates in response to control signals 16 generated by a logic circuit 18 (which may be implemented in an embodiment using a programmed microcontroller or microprocessor). In the case of the three phases of the motor 12, the logic circuit 18 controls the driver circuit 14 to drive the terminals of the motor with a “six-step” technique wherein the windings are cyclically powered. The six steps may, for example, comprise: CB; AB; AC; BC; BA; and CA, wherein the first letter x in the letter pair xy identifies the motor terminal connected by the driver circuit 14 to a higher voltage and the second letter y identifies the motor terminal connected by the driver circuit 14 to a lower voltage. It will be noted that for each step there is a winding of the motor 12 which is not driven (this being typically accomplished by having the associated terminal of the motor placed by the driver circuit in a high-impedance or tri-state state).
If the BLDC motor 12 is running at a relative high speed, the voltage across the undriven winding arises mainly due to the counter back-electromotive force (BEMF) that is a function of the motor speed. If the motor 12 is instead stopped or running at a very low speed, the voltage across the undriven winding arises instead mainly due to the mutual inductance (MI) phenomena if the driver circuit generates variable current (for example, the driver is working in a switching mode). The variable current flowing through the driven winding generates variable magnetic flux. The variable magnetic flux is concatenated to the undriven winding (thanks to the mutual inductance) and generates a voltage across the undriven winding itself (this being referred to in the art as the “mutual inductance” voltage). Because the mutual inductance is function of the rotor position, the voltage generated across the undriven coil (the mutual inductance voltage) will also be a function of the rotor position and its variability is used to detect the rotor position.
Using a multiplexor (MUX) circuit 20, the undriven motor terminal at each step of the drive cycle is selectively connected to a first input of a comparator circuit 22. The logic circuit 18 uses selection signal S to control the switching selection made by the multiplexor circuit 20 to choose the terminal for the undriven winding. A second input of the comparator 22 is connected to a reference node 26, with that reference node being connected in an embodiment to the fourth external terminal of the motor 12 that is connected to the center terminal CT. In event the connection to the center terminal CT is not available, a virtual center terminal can be created using resistors 24 that are coupled between the reference node 26 and each of the drive terminals for the signals Out A, Out B and Out C at the output of the driver circuit 14.
The comparator 22 functions as a zero-crossing (ZC) detection circuit to detect instances where the voltage on the first input (i.e., the voltage on the undriven motor terminal) crosses over the voltage of the reference node 26. The zero-crossing detection signal 28 output from the comparator 22 is applied to the logic circuit 18 for use, for example, in detecting the physical rotational position of the motor 12 using techniques well known to those skilled in the art. Knowledge of the rotor position is important in order to properly generate the sequence of signals in the pair xy for application to the motor terminals for driving motor operation.
In the case where the motor 12 is running at a relative high speed, the voltage across the undriven winding is usually high enough for the comparator 22 to make a reliable zero-cross detection. However, in the case where the motor 12 is instead stopped or running at a very low speed, the magnitude of the variable voltage across the undriven winding can be very low (for example, tenths of millivolts). An accurate zero-crossing detection may be difficult due to the presence of a mutual inductance (MI) voltage offset. Any error in the center tap reconstruction using resistors 24 (for example, due to resistive mismatch) or any motor construction unbalance (for example, due to coil asymmetry), can introduce an unwanted voltage offset in the voltage across the undriven winding. FIG. 2 shows an ideal example of the MI voltage sensed on the undriven motor terminal for motor 12 as well as the locations where the comparator 22 can make an accurate zero-crossing detection. FIG. 3, however, shows the effect of the mutual inductance voltage offset 30 on the voltage across the undriven winding which shifts the position of the zero-crossing detection (referred to as a zero-cross position error) relative to the ideal case of FIG. 2. The mutual inductance voltage offset can make the mutual inductance zero-crossing (MIZC) detection unreliable, and in a worst case scenario the MIZC detection is not guaranteed at all. In either case, detection of rotor position is compromised.
There is a need in art to account for the mutual inductance voltage offset in order to make an accurate MIZC detection.